/*
 * 版权所有 (C) 2001-2015 深圳市艾派应用系统有限公司。保留所有权利。
 * 版本：
 * 修改记录：
 *		1、Feb 28, 2015，miaojr创建。 
 */
package com.ordering.util;

import jcifs.smb.SmbFile;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.ordering.constant.Constants;


/**
 * 等比例文件压缩/放大线程
 */
public class ImageThread extends Thread
{
    private static final Log logger = LogFactory.getLog(ImageThread.class);
    private SmbFile file;
    private String[] saveFileName;
    private int[] toWidth;
    private int[] toHeight;
    
    /**
     * 等比例文件压缩/放大
     * @param imgFile 图片文件对象
     * @param saveFileName 压缩/放大后的文件名称，包含后缀名和文件路径名，如：goodsFile/20150302/picture/big/xxx.jpg
     * @param toWidth 压缩/放大后的图片宽度
     */
    public ImageThread(SmbFile imgFile, String[] saveFileName, int[] toWidth, int[] toHeight)
    {
        this.file = imgFile;
        this.saveFileName= saveFileName;
        this.toWidth = toWidth;
        this.toHeight = toHeight;
    }
    
    
    @Override
    public void run()
    {
        try
        {
            logger.info("图片压缩/放大线程开始运行...");
            for(int i = 0, save_len = saveFileName.length; i < save_len; i++)
            {
                String path = Constants.FILE_PATH;
                int lastIndex = saveFileName[i].lastIndexOf("/");
                path = path.concat("/").concat(saveFileName[i].substring(0, lastIndex));
                SmbFile folde = new SmbFile(path);
                synchronized (folde)
                {
                    if (!folde.exists())
                    {
                        folde.mkdirs();
                    }
                }
                ImageUtils.createNewImage(file, toWidth[i], toHeight[i], path, saveFileName[i].substring(lastIndex + 1));
            }
            
            logger.info("图片压缩/放大线程运行结束，处理成功...");
        }
        catch (Exception e)
        {
            logger.error("图片压缩/放大线程运行结束，处理失败...", e);
        }
    }
    
}
